import {v4 as uuid} from "uuid"
import {timer} from '@/utils/format'
import {worldSimControllerOptions} from '@/business/const'
const state = {
  createCaseForms: {            // 创建case的form表单
    session_name: 'Task_' + timer(),
    session_id: uuid(),
    map_id:'Town04',
    controller:worldSimControllerOptions[0].value,
    pnc_version: '',
    sim_type: 'worldsim',
    ext_workers: false,  // 是否使用自定义节点
    ext_workers_id: '',
    case_ids:[],           // 勾选的 case id 
    case_group_ids: [],  // 选择case的 内置组 ids
    case_category_ids: [], // 选择case的自定义组 ids
    metric_category: [],   // 选择metric
    scene_mode: null       // 地图测试时候，选择scene 
  },
  caseIds: [],           // 第二步选择的 case ids 
  caseGroupIds: [],   // 第二步选中的 case的自定义组 ids
  caseCategoryIds: [],  // 第二步选中的 case的category ids
  selectedMetricCategory: []  // 第三步使用的metric 类别
}

const mutations = {
  SET_SELECTED_CASE_IDS:(state,val) => {
    state.caseIds = val
  },
  SET_CASE_FORMS:(state,val) => {
    state.createCaseForms = Object.assign(state.createCaseForms, val)
  },
  SET_SELECTED_METRIC_CATEGORY:(state,val) => {
    state.selectedMetricCategory = val
  },
  SET_SELECTED_CASE_GROUP_IDS:(state,val) => {
    state.caseGroupIds = val
  },
  SET_SELECTED_CASE_CATEGORY_IDS:(state,val) => {
    state.caseCategoryIds = val
  },
}

const actions = {
  // 勾选中的case的ids
  setSelectedCaseIds({commit},data){
    commit('SET_SELECTED_CASE_IDS', data)
  },
  // 创建作业的参数集合
  setCaseForms({commit},data){
    commit('SET_CASE_FORMS', data)
  },
  //创建作业第三步- 勾选中的 metric category
  setSelectedMetricCategory({commit},data){
    commit('SET_SELECTED_METRIC_CATEGORY', data)
  },
  //创建作业第2步- z左侧选中的 组
  setSelectedCaseGroupIds({commit},data){
    commit('SET_SELECTED_CASE_GROUP_IDS', data)
  },
  //创建作业第2步- z左侧选中的 组 ids
  setSelectedCaseCategoryIds({commit},data){
    commit('SET_SELECTED_CASE_CATEGORY_IDS', data)
  },
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}